lib/amber/site.rb
def pages_in_path_depth_order
      paths = {}
      @page_list.each do |page|
        paths[page.path] ||= page
        locales = page.locales
        locales << I18n.default_locale unless locales.include? I18n.default_locale
        locales.each do |locale|
          page.aliases(locale).each do |alias_path|
            paths[alias_path] ||= page
          end
        end
      end
      paths.collect{|path, page| {page:page, path:path}}.sort{|a,b|
        a[:path].length <=> a[:path].length
      }
    end
def pages_in_path_depth_order
      paths = {}
      @page_list.each do |page|
        paths[page.path] ||= page
        locales = page.locales
        locales << I18n.default_locale unless locales.include? I18n.default_locale
        locales.each do |locale|
          page.aliases(locale).each do |alias_path|
            paths[alias_path] ||= page
          end
        end
      end
      paths.collect{|path, page| {page:page, path:path}}.sort{|a,b|
        a[:path].length <=> a[:path].length
      }
    end
Returns an array like this:

   [
     {:page => <page1>, :path => ['a', 'page1']},
     {:page => <page2>, :path => ['a','b', 'page2']},
   ]

 This array is sorted by the depth of the path (shortest first)
 Pages will appear multiple times (once for each path, including aliases)