redone: nfa: slight improvements to caching
redone: dfa: use defaultdict for sink
redone: nfa: use breadth-first traversal rather than recursion
merge branch 'speed-improvements'