Computers are definitely hard.
I don’t remember why I didn’t factor in previously faced opponents when I wrote the group swiss pairing code. Probably because computers are hard. But since I don’t remember I’ve developed a healthy amount of hubris. MP should look at your previously faced opponents.
The real problem is far more practical: I have a healthy fear of making changes to the pairing code. MP hit 300 tournaments in October and modifying pairing code is good way to break a decent chunk of those tournaments.
The solution is simple: Write tests for the pairing code so the risk of breaking things goes “almost certain” to “pretty darn difficult”.
Only trouble: Writing these tests is pretty time-consuming. If anyone likes writing tests and wants to help out…