fixed filter() that relied on wrong find() behavior

also added t/filter.t
fixed two t/03_traverse.t tests that was expecting wrong behavior from filter()