<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, name, chamber=None):
 """ If this matcher has uniquely seen a matching name, return its value. Otherwise, return None. If chamber is set then the search will be limited to legislators with matching chamber. If chamber is None then the search will be cross-chamber. """

        try:
            return self._manual[chamber][name]
        except KeyError:
            pass

        if chamber == 'joint':
            chamber = None

        try:
            return self._codes[chamber][name]
        except KeyError:
            pass

        if chamber not in self._names:
            logger.warning("Chamber %s is invalid for a legislator." % (
                chamber
            ))
            return None

        name = self._normalize(name)
        return self._names[chamber].get(name, None)