code: def _exact_fuzzy_match(response, match, insensitive):
      '''
      Return True if the response matches fuzzily exactly.
      Insensitivity is taken into account.
      '''
      if insensitive:
          response = response.lower()
          match = match.lower()
      r_words = response.split()
      m_words = match.split()
      # match whole words first
      for word in r_words:
          if word in m_words:
              r_words.remove(word)
              m_words.remove(word)
      # no partial matches allowed
      # if all the items in the response were matched,
      # and all the items in the match were matched,
      # then this is an exact fuzzy match
      return len(r_words) == 0 and len(m_words) == f _exact_fuzzy_match(response, match, insensitive):
      '''
      Return True if the response matches fuzzily exactly.
      Insensitivity is taken into account.
      '''
      if insensitive:
          response = response.lower()
          match = match.lower()
      r_words = response.split()
      m_words = match.split()
      # match whole words first
      for word in r_words:
          if word in m_words:
              r_words.remove(word)
              m_words.remove(word)
      # no partial matches allowed
      # if all the items in the response were matched,
      # and all the items in the match were matched,
      # then this is an exact fuzzy match
      return len(r_words) == 0 and len(m_words) == 0
docs: Return True if the response matches fuzzily exactly.
      Insensitivity is taken into account.