public function genericCreateSlug($text) {

        // Define a separator
        $separator = '-';

        // Convert all dashes/underscores into separator
        $flip = $separator == '-' ? '_' : '-';

        // Wash the $text, although it should already be washed
        $slug = $this->genericWashText($text);

        $slug = preg_replace('!['.preg_quote($flip).']+!u', $separator, $slug);

        // Remove all characters that are not the separator, letters, numbers, or whitespace.
        $slug = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', mb_strtolower($slug));

        // Replace all separator characters and whitespace by a single separator
        $slug = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $slug);

        return $slug;
    }