You cannot update match rules at Runtime. The way you would handle this is to enable UseKeys on a given control and iterate through the CloneCollection (GetClones method of a control) and retrieve these properties at runtime and use those to work with the specific clone that matches.
For example; imagine that I have a list of names on an account, and I need to click on the one that matches the name of the customer's spouse which I'll get when I look up the account number. Obviously, I cannot use any sort of text for the match rule since it will vary wildly, so I would use a generic match rule that applied to all of the names in the list. If you can't find anything to match that is generic enough to match for only the items in the list, you might need to interrogate a parent control that you can match uniquely. This would then contain the items in the list so that they can use generic match rules. For this name item, you'll enable UseKeys (in the properties window you'll see it and can set it to true). This will add the little pink roman numeral II on the control.
In your automation, you would call the GetClones method of this control to iterate through all matching instances of this control. The easiest way to do this is to pass that result into a ListLoop. You can extract a proxy from the ListLoop to get a reference to the specific clone within the collection. From here, you can check it's properties to see if it is the one you want and then operate on it.