sentence.py:
add DepNode.__repr__

dregex.py:
remove unused DrMatch class
add Traversal class, which describes the traversal of an edge of the NFA (nondeterministic finite automata) at pattern-matching time
add TraversalHistory class, which contains the history (a list of Traversal objects) for a particular path through the NFA taken at pattern-matching time, as well as the dependency parse node values accumulated by that traversal history
move values from DepNodeMatch class constructor to its match() method, since the DepNodeMatch object is no longer responsible for storing the values, just assigning them (the Traversal objects store them, and the containing TraversalHistory object accumulates them)
add NfaEdge class to represent the edge of the NFA

NfaState class:
replace left, right, and _split members with a list, _edges, of NfaEdge objects
 add _next_id class variable, which is used to form name for display purposes
 add name member, which is displayed in the .svg graph depiction of the NFA
 add dangling_edges, a list of edges that have no destination state assigned yet
rewrite adj method to use NfaState._edges
remove append, split, last, set_dp_root, and is_split methods
rewrite set_output method
implement next_states as a base method
add helper class method from_node_match
add take_de_from method to take ownership of dangling edges from target state

remove DominateState class
add DominateCondition and ImmediateDominateCondition classes
stop splitting *< and *<< operators into separate < or << and * operators, since they must be handled differently

 DRegex class:
 remove values member since traversal history objects track that now
 rename _fix_star_order method to _fix_op_order and add support for '?' operator
 change  _expect_expr method to no longer expect that *< and *<< are separated into two operators each
 rewrite match method to use lists of TraversalHistory objects
 rewrite _postfix_to_nfa method to properly support *< and *<< operators, as well as lay the groundwork for future support of | (alternation) + (one-or-more) and * (zero-or-more) operators
 add double-circle style for accepting states to plot method