Doesn't AndTreeFilter take a List also?  If so can't we make a temporary list here and put the three default items in, then the one conditional user filter?

If the user filter is a path filter (and it probably is) its faster if its first in the list.  Paths are very cheap to evaluate and they rule out most of the project's files.