@Test // adding elements doesn't impact currently existing elements that don't overlap
public void putByPath_path_existing_not_overlapping() {

	Map<String,Object> input = new HashMap<String,Object>() {{
		put("x", "1");
		put("y", new HashMap<String,Object>() {{
			put("z", "2");
		}});
	}};
	Map<String,Object> expect = new HashMap<String,Object>() {{
		put("x", "1");
		put("y", new HashMap<String,Object>() {{
			put("a", "value 2");
			put("z", "2");
		}});
		put("a", new HashMap<String,Object>() {{
			put("b", new HashMap<String,Object>() {{
				put("c", "value 1");
			}});
		}});
	}};
	CollectionUtils.putByPath(input, "a/b/c", "value 1");
	CollectionUtils.putByPath(input, "y/a", "value 2");
	assertEquals(expect, input);
}