code: def visit_Dict(self, pattern):
          
          if not isinstance(self.node, Dict):
              return False
          if len(pattern.keys) > MAX_UNORDERED_LENGTH:
              raise DamnTooLongPattern("Pattern for Dict is too long")
          for permutation in permutations(range(len(self.node.keys))):
              for i, value in enumerate(permutation):
                  if not self.field_match(self.node.keys[i],
                                          pattern.keys[value]):
                      break
              else:
                  pattern_values = [pattern.values[i] for i in permutation]
                  return self.check_list(self.node.values, pattern_values)
          return False
docs: Dict can match with unordered values.