Simple classes for building compatible DFAs in a more intuitive way. (source is below the documentation)
Using it manually is pretty simple, basically you create a new DFA object, and add states to it. States are created automatically when you try and use them, so you don't have to worry about creating them explicitly. Here's an example of creating the DFA shown here.