Your main goal is to create a single feature between intersections. Here's how to create single feature road features:
Perform an intersect
on your road segments with output type set to POINT
.


Add XY fields to your intersect points.


Dissolve
points by POINT_X
and POINT_Y
fields. Use OBJECTID
as a stats field, with stats type COUNT
.

Select your stats field COUNT_OBJECTID
< 3 to select non-intersection vertices. Start and editing session and delete these points, or use the Delete Features
tool.

Dissolve
your road segments into a single feature.


Split Lines at Points
. You'll have single segments between intersections.


Now you just need to use a Spatial Join
with your input feature class being your new lines and your join feature class being your crash points. You'll get a Join_Count
field added which shows how many crashes were joined to each segment.