A router will do everthing that a bridge will do and more. Routers are used in complex networks because they do not pass broadcast traffic. A router will determine the most efficient path for a packet to take and send packets around failed segments. Unroutable protocols can't be fowarded. A brouter has the best features of both routers and bridges in that it can be configured to pass the unroutable protocols by imitating a bridge, while not passing broadcast storms by acting as a router for other protocols.
Gateways enable communications between different protocols, data types and environments.
This is achieved via protocol conversion, whereby the gateway strips the protocol stack off of the packet and adds the appropriate stack for the other side. There was one thing that our instructor taught us that I can't seem to forget. D ata P rocessing. The first letter of each word corresponds to the first letter of one of the layers. It is dumb as hell, but it works.