multiplayer match making

I have some general questions about multiplayer environments and match making with unreal. I love how easy UE makes replication, but from what i understand, unreal doesn’t handle things like match making or port forwarding, but it does integrate into steam. Does steam handling the match making? If so, does it also handle things like NAT punch through? If not, how are other games handling this issue? The end goal i am looking for is that i can host a game, and players outside of my network could see it and join it. It sounds like what steam offers, but i wasnt sure if steam worked that way (where a player can host a game, and other players can see it, and join), or if you need to have a dedicated server on steam. steam is just the example i am using here, i imagine people use it, or a home grown solution for pc?
Sorry for all the questions!

If the end goal you are looking for is player-hosted games, then you would just use the UE4 built-in multiplayer networking (sessions) along with the Steam subsystem just like you said. Players hosting their own sessions will be able to be found by other players through the Steam subsystem.

Awesome, thanks! That is exactly what i needed to know.