'Fails if the given dictionaries are not equal.
First the equality of dictionaries\' keys is checked and after that all
the key value pairs. If there are differences between the values, those
are listed in the error message. The types of the dictionaries do not
need to be same.
See `Lists Should Be Equal` for more information about configuring
the error message with ``msg`` and ``values`` arguments.
The given dictionaries are never altered by this keyword.'

def dictionaries_should_be_equal(self, dict1, dict2, msg=None, values=True):

    keys = self._keys_should_be_equal(dict1, dict2, msg, values)
    self._key_values_should_be_equal(keys, dict1, dict2, msg, values)
