public RewrittenContent Rewrite(string content, Uri sourceUrl)
        {
            if (content == null)
            {
                throw new ArgumentNullException("content");
            }
            if (sourceUrl == null)
            {
                throw new ArgumentNullException("sourceUrl");
            }
            if (!sourceUrl.IsAbsoluteUri)
            {
                throw new ArgumentException("sourceUrl must be an absolute url");
            }

            var reWrittenContent = _preRewriter.Rewrite(content, sourceUrl);

            if (!_sourceUrlCondition(sourceUrl))
            {
                return(reWrittenContent);
            }

            return(new RewrittenContent(
                       MakeReplacement(reWrittenContent.Content),
                       reWrittenContent.ReferencedRelativeUrls
                       ));
        }