Use _key directly for equality checks

Should this also check whether `self` and `other` are the same subclass or is that not the behavior we want?