public static function filter($systemRequirementsInfo, $filterFunction)
    {
        $iterator = static::iterateThroughSystemRequirementsInfo($systemRequirementsInfo);

        foreach ($iterator as list($groupId, $moduleId, $moduleState)) {
            $systemRequirementsInfo[$groupId][$moduleId] = $filterFunction($groupId, $moduleId, $moduleState);
        }

        return $systemRequirementsInfo;
    }