I'm re-adding Matchable.

Matchable is an interface that would allow Object "matching" without having
to create a new instance of that Object, e.g. if you wanted to find a warp
with a certain name and owner, instead of making a new UltraWarp object
with that name and owner and a bunch of other needless data, you could just
call warp.matchTo(name, owner) (assuming UltraWarp implements Matchable).