 
   defp build_path_and_binding(%Route{path: path} = route) do
     {params, segments} = case route.kind do
-      :forward -> build_path_match(path <> "/*_forward_path_info")
-      :match   -> build_path_match(path)
+      :forward -> Plug.Router.Utils.build_path_match(path <> "/*_forward_path_info")
+      :match   -> Plug.Router.Utils.build_path_match(path)
     end
 
     binding = for var <- params, var != :_forward_path_info do

  `path` contains a dynamic segment.
  """
  def forward_path_segments(path, plug, phoenix_forwards) do
    case build_path_match(path) do
      {[], path_segments} ->
        if phoenix_forwards[plug] do
          raise ArgumentError, "#{inspect plug} has already been forwarded to. A module can only be forwarded a single time."

  end

  defp build_dispatch(%Route{kind: :forward} = route) do
    {_params, fwd_segments} = Plug.Router.Utils.build_path_match(route.path)

    quote do
      {
