If the single priority value on a per-action basis is good enough for the normal case and needs overriding only for particular thing/action combinations (perhaps under specific circumstances) then a rulebook on things producing a number is probably in order. You’ll need a global to “pass” an identifier for the action to the rulebook since rulebooks can only have 0 or 1 parameters. That identifier could be an action name (you’d probably want to add a column for this to the table of linking) or it could just be the value of the link column itself.
A fairly easy way to store results for consideration would be to add another column for score to the table of linking. At the beginning of considering a thing, set score to 0 for all rows. Then loop through the table, leaving score at 0 if the condition doesn’t pass. If it passes, set it to priority but then check the scoring rulebook, and set the result if it produces one. Then reorder the table by descending score and make hyperlinks for up to the first 4 rows with non-zero scores. You could keep restoring the table order to a consistent known order, but it wouldn’t really matter.
It sounds goofy, but if you compare it to creating a list of 2-element lists so you could sort that by score it starts to look better.