let machine = StateMachine<MyState, MyEvent>(state: .State0) { machine in machine.addRoute(.State0 => .State1) machine.addRoute(nil => .State2) { context in println("Any => 2, msg=\(context.userInfo!)") } machine.addRoute(.State2 => nil) { context in println("2 => Any, msg=\(context.userInfo!)") } // add handler (handlerContext = (event, transition, order, userInfo)) machine.addHandler(.State0 =>