Gale-Shapley matchmaking algorithm