code: def match_dict(self, tokens, item):
          
          if len(tokens) == 1:
              matches, rest = tokens[0], None
          else:
              matches, rest = tokens
          self.add_check("_coconut.isinstance(" + item + ", _coconut.abc.Mapping)")
          if rest is None:
              self.add_check("_coconut.len(" + item + ") == " + str(len(matches)))
  
          if matches:
              self.use_sentinel = True
          for k, v in matches:
              key_var = self.get_temp_var()
              self.add_def(key_var + " = " + item + ".get(" + k + ", " + sentinel_var + ")")
              with self.down_a_level():
                  self.add_check(key_var + " is not " + sentinel_var)
                  self.match(v, key_var)
          if rest is not None and rest != wildcard:
              match_keys = [k for k, v in matches]
              with self.down_a_level():
                  self.add_def(
                      rest + " = dict((k, v) for k, v in "
                      + item + ".items() if k not in set(("
                      + ", ".join(match_keys) + ("," if len(match_keys) == 1 else "")
                      + ")))",
                  )
docs: Matches a dictionary.