Yes, there are few options to make use of related objects.


Option 1. Use Field from Related Object

For example, if we deduplicate accounts and want to make sure that the master record is an account that has an active owner then we can use the following rule


image 


Option 2. Roll-up Field


Create a Roll-Up field on Account that will reflect status of the associated contracts. Then you can use this field in the rule that determines master record and prioritize based on it. More on prioritize rule here: Merge Rules: Prioritize by value


Option 3. Cross-Object Dataset


Create two datasets,


Dataset #1: Accounts with Active Contracts with the following SOQL Filter

Id in (SELECT AccountId from Contract WHERE Status = 'Active')


Dataset #2: Accounts without Active Contracts with the following SOQL Filter 

Id not in (SELECT AccountId from Contract WHERE Status = 'Active')

Then, create a cross-object dataset where Parent is Dataset #1 and Child is Dataset #2.



Note: The following example helps resolve "When merging portal enabled accounts, the master record must be portal enabled." Salesforce error.


Another practical example of this is selecting a contact with enabled Portal User to be master record:


Dataset Portal User Contacts


Id IN (SELECT ContactId from User WHERE IsActive = True AND IsPortalEnabled = True)
And a dataset of Other Contacts:


Id NOT IN (SELECT ContactId from User WHERE IsActive = True AND IsPortalEnabled = True)

Create a cross-object dataset where Parent is Portal User Contacts and Child is Other Contacts.


The duplicate groups in the cross-object dataset will have master records with portal users and the merge should go through.