'Returns `True` if this unit is equivalent to `other`.
See `is_equivalent`, except that a proper Unit object should be
given (i.e., no string) and that the equivalency list should be
normalized using `_normalize_equivalencies`.'

def _is_equivalent(self, other, equivalencies=[]):

    if isinstance(other, UnrecognizedUnit):
        return False
    if (self._get_physical_type_id() == other._get_physical_type_id()):
        return True
    elif len(equivalencies):
        unit = self.decompose()
        other = other.decompose()
        for (a, b, forward, backward) in equivalencies:
            if (b is None):
                try:
                    (other / unit).decompose([a])
                    return True
                except Exception:
                    pass
            elif ((a._is_equivalent(unit) and b._is_equivalent(other)) or (b._is_equivalent(unit) and a._is_equivalent(other))):
                return True
    return False
