'Strategy: Don\'t handle all kinds of weird cases. Be strict.
Accepts paths both starting with and without \'/\''

@classmethod
def get_by_path(cls, path, select_related=False):

    path = path.lstrip(u'/')
    path = path.rstrip(u'/')
    if (not path):
        return cls.root()
    slugs = path.split(u'/')
    level = 1
    parent = cls.root()
    for slug in slugs:
        if settings.URL_CASE_SENSITIVE:
            child = parent.get_children().select_related_common().get(slug=slug)
            child.cached_ancestors = (parent.cached_ancestors + [parent])
            parent = child
        else:
            child = parent.get_children().select_related_common().get(slug__iexact=slug)
            child.cached_ancestors = (parent.cached_ancestors + [parent])
            parent = child
        level += 1
    return parent
