Changed to a simple Map for functions. Added an internal `fsm:current` state that, if returned from a Function, will cause the current state to be re-triggered. Becomes a recursive call if run in the context of the SynchronousDispatcher.