code: protected function filterList(array $nodes = array(), array $rules = array())
      {
          if (!empty($rules)) {
              foreach ($nodes as $node) {
                  if (!$node instanceof AbstractNode) {
                      continue;
                  }
  
                  $props = $node->getInfo(false);
                  $props = array_intersect_key($props, $rules);
                  $match = true;
  
                  foreach ($props as $key => $val) {
                      if ($val instanceof StringHelper) {
                          $match = $val->contains($rules[$key], true);
                      } else {
                          $match = $val == $rules[$key];
                      }
  
                      if ($match === false) {
                          unset($nodes[$node->getId()]);
                      }
                  }
              }
          }
  
          return $nodes;
      }
docs: Filters given node list array using specified filter rules.
  
  @param  array $nodes
  @param  array $rules
  @return array