anchor.diff:  
   	{ok, Routes}.
   	
  -finish(State) -> 
  -	{ok, State}.
  +finish(_State) -> 
  +	{ok, []}.
   
   %%% PRIVATE FUNCTIONS %%%
   
   % If there is no extension, convert to
   % a module name. Otherwise, assume
   % it's a static file.
  -route_using_extension(Path) ->
  +route(Path, Routes) when Routes == []; Routes == undefined ->
   	case filename:extension(Path) of
   		[] ->
   			% No extension, it's a module. 
  
positive.code: 	% a module.
  	% Otherwise, look through all routes for
  	% the first matching route.
  	{Module, PathInfo} = case Routes of
  		[] -> route_using_extension(Path);
  		_ -> route(Path, Routes)
  	end,
  	
  	% TODO - Allow users to supply their own custom 404 module.
  	{Module1, PathInfo1} = check_for_404(Module, PathInfo, Path),
  
negative.code: 		_ ->
  			% Serve this up as a static file.
  			{static_file, Path}
  	end;
  	
  % Look through all routes for a route that matches
  % the specified path. If none are found, then 
  % this is a static file. If more than one are
  % found, takes the longest.
  route(Path, Routes) ->
  	% Returns {SizeOfMatch, Prefix, Module}
  	F = fun(Prefix, Module) ->
  		case string:str(Path, Prefix) of
  			1 -> {length(Prefix), Prefix, Module};
  			_ -> not_found
  		end
  	end,
  	Matches = [F(Prefix, Module) || {Prefix, Module} <- Routes],
  	Matches1 = lists:reverse(lists:sort([X || X <- Matches, X /= not_found])),
  
  	case Matches1 of
  		[] -> 
  			{static_file, Path};
  		[{_, Prefix, Module}|_] ->
  			{Module, string:substr(Path, length(Prefix))}
  	end.
  
  
  