def METHOD_NAME(self, path_components, expected, combinations=True):
    if combinations:
        cases = join_combinations(path_components)
    else:
        cases = (path_components,)
    for case in cases:
        with self.subTest(case=case):
            self.assertEqual(list(PathIterator(*case)), expected)