Find all \$k\$-smooth pairs Introduction
In number theory, we say a number is \$k\$-smooth when its prime factors are all at most \$k\$. For example, 2940 is 7-smooth because \$2940=2^2\cdot3\cdot5\cdot7^2\$.
Here, we define a \$k\$-smooth pair as two consecutive integers which both are \$k\$-smooth. An example of 7-smooth pair will be \$(4374,4375)\$ because \$4374=2\cdot3^7\$ and \$4375=5^4\cdot7\$. Fun fact: This is actually the largest 7-smooth pair.
Størmer proved in 1897 that for every \$k\$, there are only finitely many \$k\$-smooth pairs, and this fact is known as Størmer's Theorem.
Challenge
Your task is to write a program or function that, given a prime number input \$k\$, outputs or returns all \$k\$-smooth pairs without duplicate (order within the pair does not matter) in any order you want.
Please be noted that for prime numbers \$p\$ and \$q\$, assuming \$p&lt;q\$, all \$p\$-smooth pairs are also \$q\$-smooth pairs.
Sample I/O
Input: 2
Output: (1, 2)

Input: 3
Output: (1, 2), (2, 3), (3, 4), (8, 9)

Input: 5
Output: (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (8, 9), (9, 10), (15, 16), (24, 25), (80, 81)

Input: 7
Output: (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 10), (14, 15),
        (15, 16), (20, 21), (24, 25), (27, 28), (35, 36), (48, 49), (49, 50), (63, 64),
        (80, 81), (125, 126), (224, 225), (2400, 2401), (4374, 4375)

Restriction
The program or function should theoretically terminate in finite time for all inputs. Standard loopholes are disallowed by default.
Winning Criteria
As this is a code-golf challenge, shortest valid submission for each language wins.
JavaScript (ES7),  234  232 bytes
Finds the solutions by solving Pell equations of the form \$x^2-2qy^2=1\$, where \$q\$ is a \$P\$-smooth square free number.
This is an implementation of Derrick Henry Lehmer's procedure, derived from Størmer's original procedure.
Returns an object whose keys and values describe the \$P\$-smooth pairs.

P=&gt;[...Array(P**P)].map((_,n)=&gt;(s=(n,i=0,k=2)=&gt;k&gt;P?n&lt;2:n%k?s(n,i,k+1):s(n/k,i,k+i))(n,1)&amp;&amp;(_=&gt;{for(x=1;(y=((++x*x-1)/n)**.5)%1;);(h=(x,y)=&gt;k--&amp;&amp;h(X*x+n*Y*y,X*y+Y*x,x&amp;s(x=~-x/2)&amp;s(x+1)?r[x]=x+1:0))(X=x,Y=y,k=P&lt;5?3:-~P/2)})(),r={})&amp;&amp;r

Try it online!
How?
The helper function \$s\$ tests whether a given integer \$n\$ is a \$P\$-smooth number when it's called with \$i=0\$, or a square free1 \$P\$-smooth number when it's called with \$i=1\$.
s = (
  n,
  i = 0,
  k = 2
) =&gt;
  k &gt; P ?
    n &lt; 2
  :
    n % k ?
      s(n, i, k + 1)
    :
      s(n / k, i, k + i)

We look for all square free1 \$P\$-smooth numbers in \$[1..P^P-1]\$, where \$P^P\$ is used as an upper bound for \$P!\$.
P=&gt;[...Array(P ** P)].map((_, n) =&gt; s(n, 1) &amp;&amp; (...))

For each number \$n\$ found above, we look for the fundamental solution of the Pell equation \$x^2-ny^2=1\$:
(_ =&gt; {
  for(x = 1; (y = ((++x * x - 1) / n) ** .5) % 1;);
  ...
})()

(the above code is the non-recursive version of my answer to this other challenge)
Once the fundamental solution \$(x_1,y_1)\$ has been found, we compute the solutions \$(x_k,y_k)\$ with \$k\le max(3,(P+1)/2)\$, using the recurrence relations:
$$x_{k+1}=x_1x_k+ny_1y_k\\
y_{k+1}=x_1y_k+y_1x_k
$$
For each \$x_k\$, we test whether \$x_k\$ is odd and both \$(x_k-1)/2\$ and \$(x_k+1)/2\$ are \$P\$-smooth. If so, we store them in the object \$r\$.
( h = (x, y) =&gt;
  k-- &amp;&amp;
  h(
    X * x + n * Y * y,
    X * y + Y * x,
    x &amp;
    s(x = ~-x / 2) &amp;
    s(x + 1) ?
      r[x] = x + 1
    :
      0
  )
)(X = x, Y = y, k = P &lt; 5 ? 3 : -~P / 2)


1: Because it does not test the primality of the divisors, the function \$s\$ will actually be truthy for some non-square free numbers, even when it's called with \$i=1\$. The idea is to filter out most of them so that not too many useless Pell equations are solved.