code: def find(self, node, list):
          
          if self.matcher.match(node):
              list.append(node)
              self.limit -= 1
              if self.limit == 0:
                  return
          for c in node.rawchildren:
              self.find(c, list)
          return self
docs: Traverse the tree looking for matches.
          @param node: A node to match on.
          @type node: L{SchemaObject}
          @param list: A list to fill.
          @type list: list