The ParseToken loops that push and pop the match list entries both run through indices in forward order, so the match list is reversed by the save/restore process. Because the understand line in the attached source introduces invocations of ParseToken, the doors are listed out-of-order in the disambiguation question, whereas they appear in the correct order without the understand line.

Minimal Source Text To Reproduce

There is a room.
Every thing has a number called the ordinal.
Understand the ordinal property as describing a thing.
Here are the first door, the second door, and the third door.
Test me with "x door."

As it happens, the parser is such that the source text here causes the match list to be inverted an even number of times, and therefore nothing bad happens, but I agree - there's no reason for ParseToken to invert the match list when it's easy not to, so I've made the change. (This does indeed fix a slightly odd question asked in the example "Originals".)