Suppose, I have a candidate vector $v(v_x, v_y, v_z)$.
I want to rotate it $\theta$ degrees about an arbitrary axis that starts at vector $s(s_x,s_y,s_z)$ and ends at vector $e(e_x, e_y, e_z)$ when the origin of the axes is located at $o(o_x, o_y, o_z)$.
This link shows that it is done using 4-element augmented vectors and $4\times4$ augmented matrices.
Is it possible to do it using 3-element vectors and $3\times3$ matrices?
Yes, it’s possible. The trickery with 4D vectors and $4 \times 4$ matrices is just to make it easier to combine several transformations by matrix multiplication.
The steps are:
When all is done, you’ll end up with a formula of the form $$ \mathbf{v}_{\text{new}} = \mathbf{M} \mathbf{v}_{\text{old}} + \mathbf{b} $$ where $\mathbf{M}$ is a $3 \times 3$ matrix and $\mathbf{b}$ is a 3D vector.