public void appendExpandedRules(@NotNull final StdArrangementMatchRule rule,
                                  @NotNull final List<? super StdArrangementMatchRule> rules,
                                  @NotNull final Map<String, StdArrangementRuleAliasToken> tokenIdToDefinition) {
    final List<StdArrangementMatchRule> sequence = getRuleSequence(rule, tokenIdToDefinition);
    if (sequence.isEmpty()) {
      rules.add(rule);
      return;
    }

    final ArrangementCompositeMatchCondition ruleTemplate = removeAliasRuleToken(rule.getMatcher().getCondition());
    for (StdArrangementMatchRule matchRule : sequence) {
      final ArrangementCompositeMatchCondition extendedRule = ruleTemplate.clone();
      extendedRule.addOperand(matchRule.getMatcher().getCondition());
      rules.add(new StdArrangementMatchRule(new StdArrangementEntryMatcher(extendedRule), rule.getOrderType()));
    }
  }
public void appendExpandedRules(@NotNull final StdArrangementMatchRule rule,
                                  @NotNull final List<? super StdArrangementMatchRule> rules,
                                  @NotNull final Map<String, StdArrangementRuleAliasToken> tokenIdToDefinition)