public static Path compose(final Path root, final String path) {
        if(StringUtils.startsWith(path, String.valueOf(Path.DELIMITER))) {
            // Mount absolute path
            final String normalized = normalize(StringUtils.replace(path, "\\", String.valueOf(Path.DELIMITER)), true);
            if(StringUtils.equals(normalized, String.valueOf(Path.DELIMITER))) {
                return root;
            }
            return new Path(normalized, normalized.equals(String.valueOf(Path.DELIMITER)) ?
                    EnumSet.of(Path.Type.volume, Path.Type.directory) : EnumSet.of(Path.Type.directory));
        }
        else {
            final String normalized;
            if(StringUtils.startsWith(path, String.format("%s%s", Path.HOME, Path.DELIMITER))) {
                // Relative path to the home directory
                normalized = normalize(StringUtils.removeStart(StringUtils.removeStart(
                        StringUtils.replace(path, "\\", String.valueOf(Path.DELIMITER)), Path.HOME), String.valueOf(Path.DELIMITER)), false);
            }
            else {
                // Relative path
                normalized = normalize(StringUtils.replace(path, "\\", String.valueOf(Path.DELIMITER)), false);
            }
            if(StringUtils.equals(normalized, String.valueOf(Path.DELIMITER))) {
                return root;
            }
            return new Path(String.format("%s%s%s", root.getAbsolute(), root.isRoot() ? StringUtils.EMPTY : Path.DELIMITER, normalized), EnumSet.of(Path.Type.directory));
        }
    }
@Test
    public void testDefaultLocalPathDriveLetter() {
        assertEquals(new Path("/C:/Users/example/Documents/vault", EnumSet.of(Path.Type.directory)),
                PathNormalizer.compose(new Path("/", EnumSet.of(Path.Type.directory)), "C:/Users/example/Documents/vault"));
    }