go-fsm Simple FSM with DFS. Made it because I needed to transition from on state to another state reachable in the path of the current state. Example See fsm_test.go for an example