Here's the approach I would take to avoid building an activity, and should only require building two when rules:
Assuming PageList 1 is a list of class Data-TypeA and PageList 2 is of class Data-TypeB, and the property name we're matching against is named Property1 in Data-TypeA, but named Property2 in Data-TypeB. Another assumption is that both pages live directly under the top level page (e.g. pyWorkPage). The goal, given an arbitrary page list of each given type, is to verify that each .PageList1().Property1 exists somewhere in .PageList2().Property2
Create a when rule in the Data-TypeA class which calls the function @isInPageList(.Property1,"Property2",top.Pagelist2). On your pages and classes tab, define top to be of the expected class for your top level page. The purpose of this when rule is to verify, given a single entry in .PageList1, that its counterpart exists somewhere in .PageList2.
Create a second when rule in your main class (i.e. your work class) which calls the function @IsInEachPageOfListWhen("WhenRuleName",.PageList1), where "WhenRuleName" is the name of the when rule from above, including the quotations. It should not be necessary to define any pages and classes. The purpose of this when rule is to verify that the above created when rule is true for all entries in .PageList1.