Beta1 -> rc1 IngressRoute breakage

It looks like something has broken between beta1 and rc1 related to IngressRoutes. In beta1 I was able to use IngressRoutes that matched a route with no service defined - only middleware. The use case is the normal kind of clean-up redirects one wants to do (www. vs naked, https vs http, etc). As of rc1 it appears that a route requires a service attached to it to function, and without this it will just continually throw errors like the following:

time="2019-08-27T20:12:28Z" level=error msg="the service \"staging/foo-website-staging-5e4ab2e6a612f393902f@kubernetescrd\" does not exist" entryPointName=web routerName=staging/foo-website-staging-5e4ab2e6a612f393902f@kubernetescrd

Here's the associated IngressRoute:

---
kind: IngressRoute
apiVersion: traefik.containo.us/v1alpha1
metadata:
  name: foo-website-staging
  namespace: staging
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`foo.com`) || Host(`www.foo.com`)
    kind: Rule
    middlewares:
    - name: foo-scheme-domain-redirect

That IR works with beta1 but not rc1. If possible I would like to keep the service off the IR definition so that there's no risk of a misconfigured middleware allowing connections to "fall through" to an actual backend service. Is there a way to do this in rc1, or will I have to attach a dummy service to the route?