Initial stab at preferences

[#74522490]
Flesh out tests more [#74522490]
Guard against odd numbers of pairs

[#74522490]
Check for randomness

[#74522490]
a little bit closer; starting to realize this is not the stable marriage problem