private function getRules(string $action): array
    {
        $rules = [];
        $parts = explode(self::DELIMITER, $action);

        while (array_pop($parts)) {
            $rules[] = implode(self::DELIMITER, $parts) . self::DELIMITER . self::WILDCARD;
        }

        $rules = array_reverse($rules);
        $rules[0] = trim($rules[0], self::DELIMITER);
        $rules[] = $action;

        return $rules;
    }