<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def slugify(value, separator="-"):
 """Slugify an Unicode string, to make it URL friendly."""

    if not isinstance(value, str):
        raise ValueError("value must be a Unicode string")
    value = _NOT_WORD_RE.sub(" ", value)
    value = unicodedata.normalize("NFKD", value)
    value = value.encode("ascii", "ignore")
    value = value.decode("ascii")
    value = value.strip().lower()
    value = re.sub(fr"[{separator}_\s]+", separator, value)
    return value