Use custom shouldVisit if specified