does this make sense? should we not rather say the opposite, that it must be a non-empty string even when the source was empty? a slugifier could generate a random hash if there is no source. if the user does not want this, he could check the source, rather than having to check the return string even if his source was non-empty.