protected static Map Unroll(string memberName, Func<string, Map> map)
{
var p = memberName.IndexOf('.');
if (p > -1) {
return new PlaceholderMap(memberName.Substring(0, p), new ToRoute[] {
(() => new View(Unroll(memberName.Substring(p + 1), map)))
});
}
return map(memberName);
}