Here's my go at this "laze". To make the paths easier to distinguish, I used a beam splitter that changes the colour of one of the beams.
(Image was edited to remove the ugliness mentioned in the comments.)
My approach was to plonk down the unavoidable bits:
* each corner must have a corner mirror, so mirrors 1,2,3,5,9,11,12 and 13 are automatic.
* 8 needs a mirror, and it cannot be in any other orientation without creating a dead end. This also forces 7.
* The beam splitter's square has a three-way intersection, where any other piece would create a dead end, and if the square were empty, the square above it would be impossible to visit without hitting a wall
With all these in place, I just put everything else (mirrors 4,6 and 10, and the two-way mirrors) in where they seemed to be useful, and happened to hit a working solution with the correct number of pieces by chance.
On the (non-)uniqueness of the solution
Notice that the lower double-sided mirror is actually a no-op: without it, the beams would just switch roles, and everything would still work out exactly the same.
Since the mirror isn't needed there, it can be removed and placed anywhere where two different beams cross, as long as it is rotated so that the incoming beams hit opposite sides of the mirror. It won't have any effect in any of those places, either:
- two spaces up, rotated
- 4 spaces up, three to the right, rotated
- 4 spaces up, one to the right, same orientation (looks a bit confusing, but works)
- 4 spaces up, four to the right, rotated
The upper two-sided mirror isn't fixed either, at least these positions work too:
- same spot, rotated (the direction of the final loop reverses)
- two spaces up, either orientation (the loop starts at a different spot)
- one space up, one to the right, either orientation (pink beam does the loop)
- one space up, two to the left, either orientation (pink beam does the loop)