code: function addMatchers(sections, tree, resultSections, results, index){
  	var hasAll = getChild(tree, WILDCARD_ALL);
  	if(hasAll) addValue(resultSections.concat(WILDCARD_ALL), hasAll, results);
  
  	var isEnd = index === sections.length;
  	if(isEnd) {
  		addValue(resultSections, tree, results);
  		return;
  	}
  
  	var hasOne = getChild(tree, WILDCARD_ONE);
  	if (hasOne) addMatchers(
  		sections,
  		hasOne,
  		resultSections.concat(WILDCARD_ONE),
  		results,
  		index + 1
  	);
  
  	var section = sections[index];
  	var hasSection = getChild(tree, section);
  	if (hasSection) addMatchers(
  		sections,
  		hasSection,
  		resultSections.concat(section),
  		results,
  		index + 1
  	);
  }
docs: ABSTRACT OPERATIONS