Introduce an option attached to actions that specifies the action will not be
duplicated on a single transaction. Perhaps this should be the default and
"allowdups" is the option.

If two states have the same EOF actions, they are written out in the finish
routine as separate cases when they can be included in one case.

Maybe support the one machine join? ( 'hello', ) or (, 'hello' )

Testing facilities: Quick easy way to query which strings are accepted.
Enumerate all accepted strings. From Nicholas Maxwell Lester.

Want to be able to return from the execute machine on matching a certain input.
Workaround: store the current state using fsm->_cs = ftargs; then return.
Should be built in.  Be sure to document the fact that following actions on the
same character are abandoned.  From Nicholas Maxwell Lester. 

Print graphviz transitions as characters, rather than numbers, makes it easier
to interpret the graph. Perhaps somehow support the printing of symbols? Must
not make it difficult to understand non-printable characters.

Embed actions into states that get executed immediately upon entering the
state. Inspired by question from Steve (srbstar).

Documentation: add longest match kleene star operator.

Options are available on the command line settable from within the fsm
specification. This would allow different fsms to be compiled differently from
within the same source.

Add more examples, add more tests and write more documentation.

Better compression of table driven fsms. Can put functions and states in the
same array then a transitions can be variable size. After looking at the target
state if the next num is in the function range then there is a function,
otherwise it is part of the next transition.

A debugger would be nice. Ragel could emit a special debug version that propted
for debug commands that allowed the user to step through the machine and get
details about where they are in their RL.
