Well, to start off, tileable textures are easy to make with the free Krita, for example. Just press W to see your image a tiled:
Then, scale your UVs to the width of the texture:
That way you at least get the straight roads to be tiled:
For the intersections...
Image taken from here
If you make edges in the middle of the road and want to slide them with GG, you probably need to check the 'Correct UVs' in the Tools panel (press T in viewport) in order to slide only the edge and not distort the road texture:
One way is to use this kind of texture in a separate material assigned to new polygon to terminate the tiling road:
Then just rotate and move (G,X or Y to restrict the axis you're moving the UV)
For the diagonal roads, you may need to use GG and then slide back a bit and then hold down Alt and then slide forward in order to lengthen a diagonal road polygon:
The diagonal-to-straight road transition is a bit difficult to make nicely. If you don't want to be too finicky about it, maybe just go like this, select the polygons and unwrap the road again and scale it to the width of the road texture like before. Then just slide the UVs until you have a nice result:
Just ask in the comments if you have issues with these or want to know something extra :) I'll update the answer.