1. A method, comprising; receiving a dial plan; parsing the dial plan into a plurality of expressions; determining at least one expression element for each of the plurality of expressions; identifying a rule associated with the at least one expression element; and adding the rule to an array of a finite state machine; receiving a digit input; determining a match result indicating whether the digit input matches a corresponding expression element of each expression available for consideration based on the applicable rule; selectively removing expressions from consideration based on the match result; continuing to receive digit inputs and making determinations based on successive expressions and successive expression elements until either determining a match or no further expressions are available for consideration; and reporting a match status based on the match result.