This is dumb because we only use patternString to call filteredPathComponents on it... mutability doesn't matter