Added predicate overload for firstOrNil