'Returns match for a given parse tree node.
Should return a true or false object (not necessarily a bool).
It may return a non-empty dict of matching sub-nodes as
returned by a matching pattern.
Subclass may override.'

def match(self, node):

    results = {'node': node}
    return (self.pattern.match(node, results) and results)
