* Currently invalid events are ignored, create an option so that they can be
  ignored or raise an exception.

* Query for a list of possible next states.

* Make listing states optional since they can be inferred from the events.
  Only required to list a state if you want to define a transition block for it.

* Real transition actions

* Default states