Extract dfa.Matcher as separate struct
Convert DFA from class to struct
Move type aliases into template parameter list
Matcher to template parameters + whitespace + access qualifiers