Filter logic now takes dynamic second pass + expanded filter tests