<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def match(self, subject: Expression) -> Iterator[Tuple[Expression, Substitution]]: """Match the subject against all the matcher's patterns. Args: subject: The subject to match. Yields: For every match, a tuple of the matching pattern and the match substitution. """

        return _MatchIter(self, subject)