#1092 (comment)
Line 494 selects the first response item that matches each expected item. This can reject a valid unordered match when an earlier broad matcher consumes an item required by a later specific matcher.
For example, expected=[ANYTHING, {"id": 1}] and actual=[{"id": 1}, {"id": 2}] should match. The first expected item consumes {"id": 1}, then the second item cannot match. Use backtracking or bipartite matching to find a complete assignment. Add this case as a regression test.
#1092 (comment)
Line 494 selects the first response item that matches each expected item. This can reject a valid unordered match when an earlier broad matcher consumes an item required by a later specific matcher.
For example, expected=[ANYTHING, {"id": 1}] and actual=[{"id": 1}, {"id": 2}] should match. The first expected item consumes {"id": 1}, then the second item cannot match. Use backtracking or bipartite matching to find a complete assignment. Add this case as a regression test.