### Summary

Please add more filters based on os.path, specifically: `os.path.commonpath`, `os.path.normpath`. It is cheap, but would be handy in such tasks as validation, archive management, programmatic path generation. Can replace a lot of loops and regex filters.

### Issue Type

Feature Idea

### Component Name

core

### Additional Information

none

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
try:
        h = hashlib.new(hashtype)
    except Exception as e:
        
        raise AnsibleFilterError(e)
    h.update(to_bytes(data, errors='surrogate_or_strict'))
    return h.hexdigest()
def get_encrypted_password(password, hashtype='sha512', salt=None, salt_size=None, rounds=None, ident=None):
    passlib_mapping = {
        'md5': 'md5_crypt',
        'blowfish': 'bcrypt',
        'sha256': 'sha256_crypt',
        'sha512': 'sha512_crypt',
    }
    hashtype = passlib_mapping.get(hashtype, hashtype)
    try:
        return passlib_or_crypt(password, hashtype, salt=salt, salt_size=salt_size, rounds=rounds, ident=ident)
    except AnsibleError as e:
        reraise(AnsibleFilterError, AnsibleFilterError(to_native(e), orig_exc=e), sys.exc_info()[2])
def to_uuid(string, namespace=UUID_NAMESPACE_ANSIBLE):