def METHOD_NAME(self, words, rule_names, results, dispatch_other,
                    *args):
    # Disabled grammars cannot process recognitions.
    if not self.grammar.enabled:
        return False
    # Special result words *must* be handled separately by each
    #  back-end.
    assert words != "other" and words != "reject"
    # If the words argument was not "other" or "reject", then it is a
    #  sequence of (word, rule_id) 2-tuples.
    words_rules = tuple(words)
    words = tuple(r[0] for r in words)
    # Attempt to decode and process this grammar's rules.
    state = state_.State(words_rules, rule_names, self.engine)
    success = self._process_grammar_rules(state, words, results,
                                          dispatch_other, *args)
    # If unsuccessful and dictated word guesses are enabled, try again
    #  with that decoding option.
    if not success and self._dictated_word_guesses_enabled:
        state.dictated_word_guesses = True
        success = self._process_grammar_rules(state, words, results,
                                              dispatch_other, *args)
    return success