code: public static Tag uri(HttpServletRequest request, HttpServletResponse response) {
  		if (request != null) {
  			String pattern = getMatchingPattern(request);
  			if (pattern != null) {
  				return Tag.of("uri", pattern);
  			}
  			if (response != null) {
  				HttpStatus status = extractStatus(response);
  				if (status != null) {
  					if (status.is3xxRedirection()) {
  						return URI_REDIRECTION;
  					}
  					if (status == HttpStatus.NOT_FOUND) {
  						return URI_NOT_FOUND;
  					}
  				}
  			}
  			String pathInfo = getPathInfo(request);
  			if (pathInfo.isEmpty()) {
  				return URI_ROOT;
  			}
  		}
  		return URI_UNKNOWN;
  	}
docs: Creates a {@code uri} tag based on the URI of the given {@code request}. Uses the
  {@link HandlerMapping#BEST_MATCHING_PATTERN_ATTRIBUTE} best matching pattern if
  available. Falling back to {@code REDIRECTION} for 3xx responses, {@code NOT_FOUND}
  for 404 responses, {@code root} for requests with no path info, and {@code UNKNOWN}
  for all other requests.
  @param request the request
  @param response the response
  @return the uri tag derived from the request