private boolean automataMatchPhrase(PhraseMatcher.Phrase phrase, RuleEvaluation e) {
        for (PhraseMatcher.Phrase.MatchIterator i = phrase.itemIterator(); i.hasNext(); ) {
            i.next();
            FlattenedItem current = e.currentItem();
            if (current == null) return false;
            if (!labelMatches(e.currentItem().getItem(),e)) return false;
            if (!e.isInNegation())
                e.addMatch(current, i.getReplace());
            e.next();
        }
        if (phrase.getLength() > phrase.getBackedLength()) return false; // The underlying composite item has changed
        return true;
    }
Returns the name of the referenced rule, never null
container-search/src/main/java/com/yahoo/prelude/semantics/rule/ConditionReference.java