<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_street(self, token):
 """ Let's assume a street comes before a prefix and after a suffix. This isn't always the case, but we'll deal This check must come after the checks for house_number and street_prefix to help us deal with multi word streets. """

        # First check for single word streets between a prefix and a suffix
        if self.street is None and self.street_suffix is not None and self.street_prefix is None and self.house_number is None:
            self.street = self._clean(token.capitalize())
            return True
        # Now check for multiple word streets. This check must come after the check for street_prefix and house_number for this reason.
        elif self.street is not None and self.street_suffix is not None and self.street_prefix is None and self.house_number is None:
            self.street = self._clean(token.capitalize() + ' ' + self.street)
            return True
        if not self.street_suffix and not self.street and token.lower() in self.parser.streets:
            self.street = self._clean(token)
            return True
        return False