pattern
Pattern to match against, possibly containing variables.
data
Data to be checked and against which variables are extracted.
vars
Dictionary of variables which have already been found. If not
provided, an empty dictionary is created.
The `pattern' value may contain variables of the form ['varname']
which are allowed to parseTreeMatch anything. The value that is
parseTreeMatched is returned as part of a dictionary which maps
'varname' to the parseTreeMatched value. 'varname' is not required
to be a string object, but using strings makes patterns and the code
which uses them more readable. This function returns two values: a
boolean indicating whether a parseTreeMatch was found and a
dictionary mapping variable names to their associated values.