This takes this logic out of the Tweak class, and simplifies the signature of
the function where the main logic is.
The goal is to make it easier to turn into a loop like:
for (current = N; current and current->parent are both expr; current = current->parent) if (suitable(current)) return current; return null;