You have fallen trap to an inconsistence between the Point method and STGeomFromText. Point wants the argument as Lat, Long, SRID. But in STGeomFromText, Lat and Long are reversed. While the Point method is more natural, STGeomFromText builds on some standard, I believe.
There is actually a way to see this in SSMS (and that was also how I figured this out). Run this:
DECLARE @startPoint geography;
SET @startPoint = geography::Point('50.47959', '-80.518649' , 4326); -- this is the exact point from one of the routes
-- Create a buffer around the "random" point
DECLARE @buffer geography;
SET @buffer = @startPoint.STBuffer(5000); -- Create a 5km radius buffer
-- Finding the routes that pass through the buffer
SELECT 1 AS l, @startPoint AS g
SELECT 2, @buffer
SELECT 3, route
FROM routes
The look at the tab Spatial results. That makes it very clear that the buffer and the line are in very different places.
Assuming that you are not working with places in Antarctica, your line should be like this:
CREATE TABLE routes (id int NOT NULL primary key,
name nvarchar(23) NOT NULL,
route geography)
INSERT INTO routes
VALUES (
8,
'route-test-8',
geography::STGeomFromText('LINESTRING(-80.518649 50.47959, -80.519601 50.47923 )', 4326)
);
Also look at the topic for STGeomFromText. The topic itself does not say much, but the example at the end makes it clear that the order is long/lat.