You need to have one component for the route, and in it's ngOnInit you can open a modal with the component you want in the modal.
To make it reusable, you could have a route component that opens a modal with any component passed to it in route data. I assume this would only make sense for child routes, otherwise it'd just be a modal on a blank background, so example:
const childRoutes = [
{ path: 'route1', component: ModalRouteComponent, data: { component: MyModalComponent1 }},
{ path: 'route2', component: ModalRouteComponent, data: { component: MyModalComponent2 }}
];
ModalRouteComponent:
ngOnInit() {
this.route.data.subscribe(data => this.openModal(data.component));
}