def METHOD_NAME(self, geoms):
    """Merge all overlapping geometry unions.
    Go through the dictionary of geometries and merge overlapping ones until
    there is no change anymore. That is, the input dict of geometries is the
    same as the output:
    """
    retv = self._find_union_pair(geoms)
    if retv is None:
        return geoms
    cc_poly = geoms.copy()
    for idx in [0, 1]:
        del cc_poly[retv[0][idx]]
    cc_poly[retv[0]] = retv[1]
    return self.METHOD_NAME(cc_poly)