 
   """
   defmacro scope(path, options, do: context) do
-    options = Macro.expand(options, %{__CALLER__ | function: {:init, 1}})
-
-    options = quote do
-      path = unquote(path)
-      case unquote(options) do
-        alias when is_atom(alias) -> [path: path, alias: alias]
-        options when is_list(options) -> Keyword.put(options, :path, path)
-      end
-    end
+    options =
+      if Macro.quoted_literal?(options) do
+        Macro.prewalk(options, &expand_alias(&1, __CALLER__))
+      else
+        options
+      end
+
+    options =
+      quote do
+        path = unquote(path)
+
+        case unquote(options) do
+          alias when is_atom(alias) -> [path: path, alias: alias]
+          options when is_list(options) -> Keyword.put(options, :path, path)
+        end
+      end
+
     do_scope(options, context)
   end
 


  """
  defmacro scope(options, do: context) do
    do_scope(options, context)
  end



  """
  defmacro forward(path, plug, plug_opts \\ [], router_opts \\ []) do
    {plug, plug_opts} = expand_plug_and_opts(plug, plug_opts, __CALLER__)
    router_opts = Keyword.put(router_opts, :as, nil)

    quote unquote: true, bind_quoted: [path: path, plug: plug] do
