Return True if the response matches fuzzily exactly.
    Insensitivity is taken into account.

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) == 0