1. A Non-deterministic Finite Automaton (NFA) engine, comprising: a pipeline comprising a plurality of stages, wherein one of the stages comprises a transition table, wherein the transition table is programmable to track up to a maximum of X automaton states such that the transition table could be programmed to simultaneously transition from each of the X automaton states to any of the other X- 1 automaton states, wherein a first automaton and a second automaton are both encoded in the transition table, and wherein at least one of the first and second automatons is an NFA that is not a Deterministic Finite Automaton (DFA); and a controller that receives NFA engine commands onto the NFA engine, wherein the controller controls the pipeline in response to the NFA engine commands.