Non-deterministic finite automaton