boolean (PsiElement patternNode, PsiElement matchedNode, @NotNull MatchContext matchContext) { final boolean matched = delegate.match(patternNode, matchedNode, matchContext); if (matched) { matchContext.addMatchedNode(matchedNode); } if ((!matched || matchContext.getOptions().isRecursiveSearch()) && matchContext.getPattern().getStrategy().continueMatching(matchedNode) && matchContext.shouldRecursivelyMatch() ) { final PsiElement child = matchedNode.getFirstChild(); if (child != null) { matchContext.getMatcher().matchContext(SsrFilteringNodeIterator.create(child)); } } return matched; }