final public static function membersByPredicate($predicate)
    {
        $members = array();

        foreach (static::members() as $key => $member) {
            if ($predicate($member)) {
                $members[$key] = $member;
            }
        }

        return $members;
    }